home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 2.iso / BARNET / ARMLINUX / MAIL / 9701 / 000017_owner-linux-arm…r.rutgers.edu _Wed Jan 22 02:43:07 1997.msg < prev    next >
Internet Message Format  |  1998-01-25  |  6KB

  1. Return-Path: <owner-linux-arm-outgoing@vger.rutgers.edu>
  2. Received: from nic.funet.fi (nic.funet.fi [128.214.248.6]) by odie.barnet.ac.uk (8.8.2/8.8.0) with ESMTP id CAA31625 for <willy@odie.fluff.org>; Wed, 22 Jan 1997 02:43:06 GMT
  3. Received: from vger.rutgers.edu ([128.6.190.2]) by nic.funet.fi with ESMTP id <65670-19574>; Wed, 22 Jan 1997 04:42:02 +0200
  4. Received: by vger.rutgers.edu id <213477-2093>; Tue, 21 Jan 1997 21:30:23 -0500
  5. Date:     Wed, 22 Jan 1997 01:29:44 +0000 (GMT)
  6. From: Philip Blundell <pjb27@cam.ac.uk>
  7. X-Sender: pjb27@hammer.thor.cam.ac.uk
  8. To: rmk <rmk92@ecs.soton.ac.uk>
  9. cc: linux-arm@vger.rutgers.edu
  10. Subject: Re: Arm Linux
  11. In-Reply-To: <178.199701220042@caramon.armlinux.org>
  12. Message-ID: <Pine.SOL.3.95.970122011906.26176B-100000@hammer.thor.cam.ac.uk>
  13. MIME-Version: 1.0
  14. Content-Type: TEXT/PLAIN; charset=US-ASCII
  15. Sender: owner-linux-arm@vger.rutgers.edu
  16. Precedence: bulk
  17. Status: RO
  18.  
  19. On Wed, 22 Jan 1997, rmk wrote:
  20.  
  21. > It should not very difficult - I have been redesigning the processor support
  22. > in ARM Linux, and now have it done the correct way ;)
  23.  
  24. :)
  25.  
  26. > page tables (= Updatable on the ARM610).  The ARM610 port I believe is just
  27. > another case of the above - the ARM610 and ARM710 I believe are very much
  28. > alike.
  29.  
  30. They are.  As far as I can tell the only difference is the cache size, and
  31. someone from NetBSD posted that there is some difference in abort handling
  32. as well.  I've got both data sheets here, but I haven't trawled through
  33. them with a fine-toothed comb to see if there are any other differences. 
  34.  
  35. > I have sorted out the memory management level code, however, I have to upload
  36. > a new set of patches (sometime) for Alan to look into).
  37.  
  38. Right.  Well, no great rush.
  39.  
  40. > > 3. Tools and stuff.
  41. > >     - ELF.  Linux is moving to ELF, and we don't want to be left
  42. > >       behind.  ELF is important for shared libraries, especially...
  43. > I'd prefer to hold off on this until a standard appears.  The reason is that
  44. > it requires registration, and there are some complex issues that have to be
  45. > addressed.  I do have some tools that will read ELF arm in a very minor way,
  46. > but it would be totally incorrect to create our own standard until one appears
  47. > from ARM Ltd.
  48.  
  49. I think we should work with ARM Ltd to produce a standard, if need be.
  50. IMHO, ELF is important.  There is no point investing effort in dead
  51. technology. 
  52.  
  53. > The reason for this is that if we implement our own, and a standard does
  54. > appear, then there will be major incompatabilities in the library and
  55. > object files. 
  56.  
  57. Yes, but if we run with a.out now, then all library and object files will
  58. be utterly useless when ELF does appear. 
  59.  
  60. > >     - glibc, or libc.so.6, is the new Linux shared library.  It needs
  61. > >       to be ported to the ARM.
  62. > This can be done after we have ELF support (since the latest libc versions are
  63. > ELF only).
  64.  
  65. I know.  OTOH, preliminary work can be started before we have ELF.  For
  66. example, ARM-code versions of many functions must be written - anybody who
  67. enjoys writing optimised assembler is welcome to pitch in to this effort. 
  68.  
  69. It is important that we have a stable C library.  If we are still running
  70. from a ported libc 4, that is not good enough - even if you've been
  71. amazingly dilligent, the chances are that it still contains bugs, and that
  72. performance is going to be less than that of glibc.  It also lacks many
  73. features, like threads, and introduces a compatibility nightmare (right
  74. now, I'm going through the pain of making code compile for glibc -- I
  75. don't want to have to do this in reverse for the ARM at a later date). 
  76.  
  77. > Also, the 2.1.x kernels come into this category.  The 2.1.x kernels have an
  78. > altered memory management checking system (it no longer verifies addresses
  79. > before using them [will this cause problems on old hardware?]
  80.  
  81. I was thinking about this the other week.  I believe we should be OK.  Can
  82. you provide any examples of scenarios that will go wrong?
  83.  
  84. > instead they build up tables of possible faulting instructions.  This
  85. > will be extremely difficult for the ARM - we have an unrolled user
  86. > memcpy routines in the kernel == loads of different addresses for
  87. > faulting instructions, and the problem of how to generate the tables
  88. > without ELF).
  89.  
  90. I believe the first of these has already been addressed (by davem, I
  91. think) - you can give a _range_ of faulting instructions.  I think this
  92. should cover virtually every case, since exceptions only tend to turn up
  93. in constructs like:
  94.  
  95. if (copy_from_user(...)) return -EINVAL;
  96.  
  97. where the only instructions that can fault are the user-space accesses,
  98. and any one of them faulting means the same thing.  If there are any more
  99. complex uses of exceptions we may have to think more carefully, but I
  100. don't think there is any fundamental problem.
  101.  
  102. The second is more of an issue, and is yet another reason why I believe we
  103. should go for ELF.
  104.  
  105. > So which great person decided to go all out for ELF?  Is he mad?
  106.  
  107. He was probably just fed up with building a.out shared libraries.  In
  108. the real world you _cannot_ insist that everybody pick a unique base
  109. address for their library.  It totally stifles development. 
  110.  
  111. > ELF will cause fundamental problems on the ARM3 machines - ELF appears to
  112. > require a physical page to be mapped in twice, which is absolutely impossible
  113. > on the ARM3 and older.
  114.  
  115. That's bad.  I shall have to have a think about that one. 
  116.  
  117. > > 4. Weird stuff.
  118. > >     - Some sort of emulator to allow RISC OS binaries to run might be
  119. > >       a fun thing to have.
  120. > I think that this may be more of a disadvantage than an advantage.  There
  121. > will obviously be several SWI's that just cannot be implemented - OS_EnterOS,
  122. > OS_Memory, OS_SetMemMapEntries, OS_IntOff etc.  I believe that basic may
  123. > require at least OS_EnterOS, but that may be wrong.
  124.  
  125. Yes, obviously.  I wasn't suggesting we implement the whole of RISC OS,
  126. but I believe something that can run simple applications would be doable,
  127. entertaining and potentially useful.  I can't see how it could be a
  128. disadvantage.
  129.  
  130. phil